/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.senac.academicnet.model;

import br.com.senac.academicnet.model.entidades.CursoVO;

import java.util.ArrayList;
import java.util.List;
import org.hibernate.Session;

class CursoDAO {

	private static Session session;
	
    static void incluir(CursoVO curso) throws Exception {
    	DAOHibernate.incluir(curso);
    }

    static void alterar(CursoVO curso) throws Exception {
    	DAOHibernate.alterar(curso);
    }

    static void deletar(CursoVO curso) throws Exception {
    	DAOHibernate.deletar(curso);
    }
    
    static void deletarTudo() throws Exception {
    	List<CursoVO> cursos = getCursos();
    	
    	for(CursoVO curso: cursos){
    		deletar(curso);
    	}
    }

    
    static List<CursoVO> getCursos() throws Exception {

        List<CursoVO> cursos = new ArrayList<>();

        try {
			session = ConnectionHibernate.getSession();
			session.beginTransaction();
			cursos = ((List<CursoVO>) session.createCriteria(CursoVO.class).list());
			session.getTransaction().commit();
		} catch (Exception e) {
			session.getTransaction().rollback();
			e.printStackTrace();
			throw e;
		}finally{
			session.close();
		}
        
        return cursos;
        
    }
    
    static CursoVO getCurso(int codigo) throws Exception {
        CursoVO curso = new CursoVO();

        try {
			session = ConnectionHibernate.getSession();
			session.beginTransaction();
			curso = (CursoVO) session.get(CursoVO.class, codigo);
			session.getTransaction().commit();
		} catch (Exception e) {
			session.getTransaction().rollback();
			e.printStackTrace();
			throw e;
		}finally{
			session.close();
		}
        
        return curso;
    }
}